package common

import (
	log "github.com/sirupsen/logrus"
	"strings"
)

// 实现 gin 的日志写入接口
type GinLogrusWriter struct{}

func (w *GinLogrusWriter) Write(p []byte) (n int, err error) {
	log.Infof(string(p))
	/*
		// 统一处理所有 gin 日志
		msg := strings.TrimSpace(string(p))

		// 按日志前缀分类处理
		switch {
		//case strings.HasPrefix(msg, "[GIN-debug]"):
		//	handleDebugLog(msg)
		case strings.HasPrefix(msg, "[WARNING]"):
			handleWarningLog(msg)
		case strings.HasPrefix(msg, "[ERROR]"):
			handleErrorLog(msg)
		default:
			log.Info(msg)
		}

	*/
	return len(p), nil
}

func handleWarningLog(msg string) {
	cleanMsg := strings.TrimPrefix(msg, "[WARNING] ")
	log.WithField("category", "gin-config").Warn(cleanMsg)
}

func handleErrorLog(msg string) {
	cleanMsg := strings.TrimPrefix(msg, "[ERROR] ")
	log.Error(cleanMsg)
}
